package net.lucamasini.fantacalcio.server.servlet;

import java.util.List;

import javax.servlet.ServletException;

import net.lucamasini.fantacalcio.server.model.Giornata;
import net.lucamasini.fantacalcio.server.service.GiornataService;

import org.springframework.orm.jpa.JpaTemplate;

import com.google.gwt.user.server.rpc.RemoteServiceServlet;

public class GiornataServlet extends RemoteServiceServlet  implements
		GiornataService {

	private static final long serialVersionUID = 1L;

	private JpaTemplate template;
	
	@Override
	public void init() throws ServletException {
		template = (JpaTemplate) getServletContext().getAttribute(EntityManagerFactoryListener.JPATEMPLATE);
		
		if( template==null ) {
			throw new ServletException("ATTENZIONE: template non trovato nel ServletContext, verificare che web.xml sia configurato correttamente.");
		}
	}
	
	@Override
	public void destroy() {
		template = null;
	}
	
	@SuppressWarnings("unchecked")
	@Override
	public Giornata currentGiornata() {
		
		List<Giornata> giornate = template.find("SELECT g FROM Giornata g WHERE g.dataInizioPronostici < CURRENT_TIMESTAMP AND g.dataInizioPronostici > CURRENT_TIMESTAMP");

		return giornate.size()==0?null:giornate.get(0);
	}

	@Override
	public Giornata creaGiornata(Giornata newGiornata) {
		template.persist(newGiornata);
		return newGiornata;
	}

	@Override
	public Giornata cancellaGiornata(Giornata oldGiornata) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public Giornata aggiornaGiornata(Giornata giornata) {
		// TODO Auto-generated method stub
		return null;
	}

}
